#!/bin/sh

usage()
{
	echo "ps [ -p PID | -o FORMAT | aufxww ]"
	exit 1
}

while getopts "o:p:h:?" opt; do
	case "$opt" in
	o) format="$OPTARG" ;;
	p) pid="$OPTARG" ;;
	\? | h) usage ;;
	esac
done
shift $((OPTIND - 1))

if [ -n "$pid" ] && [ -n "$FAKE_PS_MAP" ]; then
	# shellcheck disable=SC1001
	case "$format" in
	comm\=)
		echo "$FAKE_PS_MAP" |
			awk -v pid="$pid" '$1 == pid { print $2 }'
		;;
	state\=)
		echo "$FAKE_PS_MAP" |
			awk -v pid="$pid" '$1 == pid { print $3 }'
		;;
	esac

	exit
fi

if [ "$1" != "auxfww" ]; then
	echo "option $1 not supported"
	usage
fi

cat <<EOF
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    Aug28   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Aug28   0:43  \_ [ksoftirqd/0]
...
root         1  0.0  0.0   2976   624 ?        Ss   Aug28   0:07 init [2]
root       495  0.0  0.0   3888  1640 ?        Ss   Aug28   0:00 udevd --daemon
...
[MORE FAKE ps OUTPUT]
EOF
